//二次封装axios 适配整个项目的Ajax发送请求
//1.下载安装引入axios
import axios from "axios";
//添加进度条效果下载安装引入nprogress
import 'nprogress/nprogress.css'
import Nprogress from 'nprogress'
import { getUserTempId } from "@/utils/getUserTempId";

//2.创建axios实例对象   以后整个项目都用这个实例发送请求

const ajax = axios.create({
    //需要加斜杠====/api
    baseURL:'/api',
    timeout:5000,//设置超时时间
})
//3.设置请求拦截器
ajax.interceptors.request.use(config=>{
     //启用进度条
    Nprogress.start()
    //添加统一请求头
    config.headers.userTempId= getUserTempId()
    return config
})

//4.设置响应拦截器
ajax.interceptors.response.use(
    response=>{
         //结束进度条
        Nprogress.done()
        return response.data
    },
    error=>{
         //结束进度条
         Nprogress.done()
        //返回失败的Promise实例 目的是走程序员自己设置的错误信息
        return Promise.reject(new Error(error.message))
    }
)
//导出对象
export default ajax
